package com.yihaodian.common;

import java.util.Iterator;
import java.util.List;

import com.google.common.collect.Lists;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;

public class ModulesBuilder {

	private final List<Module> modules = Lists.newArrayList();

	public ModulesBuilder add(Module... modules) {
		for (Module module : modules) {
			add(module);
		}
		return this;
	}

	public ModulesBuilder add(Module module) {
		modules.add(module);

		return this;
	}

	public Iterator<Module> iterator() {
		return modules.iterator();
	}

	public Injector createInjector() {
//		Modules.processModules(modules);
		Injector injector = Guice.createInjector(modules);
//		Injectors.cleanCaches(injector);
		return injector;
	}
}
